OPTIONAL External\GLU.F
{ Notes
Main reference: http://pyopengl.sourceforge.net/documentation/manual/index.xml

gluScaleImage is ommitted.

}
Requires DLL-TOOLS
Requires FLOAT-TOOLS

LIBRARY glu32.dll

Function: gluErrorString (  GLenum-error -- GLubyte )
Function: gluGetString   (  GLenum-name -- GLubyte )

\ Matrices
\ Function: gluOrtho2D ( left . right . top . btm . -- )  \ same as calling glOrtho with -1 and 1 as near and far
\ : gluOrtho2D  4df gluOrtho2D ;
0 CIMPORT: gluLookAt ( x . y . z . x . y . z . x . y . z . -- )
: gluLookAt 9df gluLookAt ;
Function: gluPerspective   (  GLdouble-fovy .   GLdouble-aspect .    GLdouble-zNear .  GLdouble-zFar .  -- )
: gluPerspective   4df gluPerspective ;
Function: gluProject           (  GLdouble-objX .   GLdouble-objY  .  GLdouble-objZ  .  GLdouble-*model GLdouble-*proj GLint-*view      GLdouble*-winX  GLdouble*-winY  GLdouble*-winZ -- GLint )
: gluProject  2>r 2>r 2>r 3df 2r> 2r> 2r> gluProject ;
Function: gluUnProject         (  GLdouble-winX .   GLdouble-winY  .  GLdouble-winZ  .  GLdouble-*model GLdouble-*proj GLint-*view      GLdouble*-objX  GLdouble*-objY  GLdouble*-objZ -- GLint )
: gluUnProject  2>r 2>r 2>r 3df 2r> 2r> 2r> gluUnProject ;
\ Function: gluUnProject4        (  GLdouble-winX .   GLdouble-winY  .  GLdouble-winZ  .  GLdouble-clipW  .  GLdouble-*model .   GLdouble-*proj .  GLint-*view  GLdouble-near  . GLdouble-far  . GLdouble*-objX  GLdouble*-objY  GLdouble*-objZ  GLdouble*-objW -- GLint )
\ : gluUnProject4   2>r 2>r 2df 2>r 2>r 2>r 4df 2r> 2r> 2r> 2r> 2r> gluUnProject4 ;

\ Tesselation
0 CIMPORT: gluNewTess
1 void CIMPORT: gluDeleteTess
2 void CIMPORT: gluTessBeginPolygon
1 void CIMPORT: gluTessEndPolygon
1 void CIMPORT: gluTessBeginContour
1 void CIMPORT: gluTessEndContour
3 void CIMPORT: gluTessVertex  ( tess location data -- )
7 void CIMPORT: gluTessNormal   ( tess dX dY dZ -- )
4 void CIMPORT: gluTessProperty  ( tess param ddata -- )
Function: gluNextContour  (  GLUtesselator*-tess  GLenum-type -- )
Function: gluTessCallback (  GLUtesselator*-tess  GLenum-which  _GLfuncptr CallBackFunc -- )

\ Shapes
Function: gluCylinder  (  GLUquadric*-quad  GLdouble-base  . GLdouble-top  . GLdouble-height .  GLint-slices  GLint-stacks -- )
: gluCylinder  >r >r 3df r> r> gluCylinder ;
Function: gluDisk   (  GLUquadric*-quad  GLdouble-inner  . GLdouble-outer  . GLint-slices  GLint-loops -- )
: gluDisk >r >r 2df r> r> gluDisk ;
Function: gluPartialDisk  (  GLUquadric*-quad  GLdouble-inner  . GLdouble-outer  . GLint-slices  GLint-loops  GLdouble-start  . GLdouble-sweep . -- )
: gluPartialDisk  2df 2>r 2>r >r 2df r> 2r> 2r> gluPartialDisk ;
Function: gluSphere (  GLUquadric*-quad  GLdouble-radius  GLint-slices  GLint-stacks -- )
: gluSphere >r >r 1df r> r> gluSphere ;

\ Nurbs
Function: gluBeginCurve   (  GLUnurbs-*nurb -- )
Function: gluEndCurve  (  GLUnurbs-*nurb -- )
Function: gluBeginSurface (  GLUnurbs*-nurb -- )
Function: gluEndSurface   (  GLUnurbs*-nurb -- )
Function: gluBeginTrim (  GLUnurbs*-nurb -- )
Function: gluEndTrim   (  GLUnurbs*-nurb -- )
Function: gluDeleteNurbsRenderer   (  GLUnurbs*-nurb -- )
Function: gluGetNurbsProperty   (  GLUnurbs*-nurb  GLenum-property  GLfloat*-data -- )
Function: gluLoadSamplingMatrices  (  GLUnurbs*-nurb   GLfloat-*model   GLfloat-*perspective   GLint-*view -- )
Function: gluNewNurbsRenderer (  -- GLUnurbs* )
Function: gluNurbsCallback   (  GLUnurbs*-nurb  GLenum-which  _GLfuncptr CallBackFunc -- )
Function: gluNurbsCallbackData  (  GLUnurbs*-nurb  GLFunction:*-userData -- )
Function: gluNurbsCallbackDataEXT  (  GLUnurbs*-nurb  GLFunction:*-userData -- )
Function: gluNurbsCurve   (  GLUnurbs*-nurb  GLint-knotCount  GLfloat-*knots  GLint-stride  GLfloat-*control  GLint-order  GLenum-type -- )
Function: gluNurbsProperty   (  GLUnurbs*-nurb  GLenum-property  GLfloat-value -- )
: gluNurbsProperty   1sfparams gluNurbsProperty ;
Function: gluNurbsSurface (  GLUnurbs*-nurb  GLint-sKnotCount  GLfloat*-sKnots  GLint-tKnotCount  GLfloat*-tKnots  GLint-sStride  GLint-tStride  GLfloat*-control  GLint-sOrder  GLint-tOrder  GLenum-type -- )
Function: gluPwlCurve  (  GLUnurbs*-nurb  GLint-count  GLfloat*-data  GLint-stride  GLenum-type -- )

\ Quadrics
Function: gluDeleteQuadric   (  GLUquadric*-quad -- )
Function: gluNewQuadric  (  -- GLUquadric* )
Function: gluQuadricCallback (  GLUquadric*-quad  GLenum-which  _GLfuncptr CallBackFunc -- )
Function: gluQuadricDrawStyle   (  GLUquadric*-quad  GLenum-draw -- )
Function: gluQuadricNormals  (  GLUquadric*-quad  GLenum-normal -- )
Function: gluQuadricTexture  (  GLUquadric*-quad  GLboolean texture -- )
Function: gluQuadricOrientation (  GLUquadric*-quad  GLenum-orientation -- )

\ Polygons
Function: gluBeginPolygon (  GLUtesselator*-tess -- )
Function: gluEndPolygon   (  GLUtesselator*-tess -- )

\ Mipmaps
Function: gluBuild1DMipmapLevels  (  GLenum-target  GLint-internalFormat  GLsizei-width  GLenum-format  GLenum-type  GLint-level  GLint-base  GLint-max   void-*data -- GLint )
Function: gluBuild1DMipmaps (  GLenum-target  GLint-internalFormat  GLsizei-width  GLenum-format  GLenum-type   void-*data -- GLint )
Function: gluBuild2DMipmapLevels  (  GLenum-target  GLint-internalFormat  GLsizei-width  GLsizei-height  GLenum-format  GLenum-type  GLint-level  GLint-base  GLint-max   void-*data -- GLint )
Function: gluBuild2DMipmaps (  GLenum-target  GLint-internalFormat  GLsizei-width  GLsizei-height  GLenum-format  GLenum-type   void-*data -- GLint )
Function: gluBuild3DMipmapLevels  (  GLenum-target  GLint-internalFormat  GLsizei-width  GLsizei-height  GLsizei-depth  GLenum-format  GLenum-type  GLint-level  GLint-base  GLint-max   void-*data -- GLint )
Function: gluBuild3DMipmaps (  GLenum-target  GLint-internalFormat  GLsizei-width  GLsizei-height  GLsizei-depth  GLenum-format  GLenum-type   void-*data -- GLint)

\ Extensions
Function: gluCheckExtension   (   GLubyte *extName   GLubyte *extString -- GLboolean )

\ Picking
Function: gluPickMatrix   (  GLdouble-x  GLdouble-y  GLdouble-delX  GLdouble-delY  GLint-*viewport -- )
: gluPickMatrix   >r 4df r> gluPickMatrix ;
